package iks.utils 
{
	/**
	 * 一些常用的数学函数
	 * @author StefanieKaka
	 */
	public final class KMath 
	{
		/**
		 * 余弦定理, 获得a, b边夹角的余弦值
		 * @param	a 边a
		 * @param	b 边b
		 * @param	c 边c
		 * @return 获得a和b夹角的余弦值
		 */
		public static function cosineslaw_cosValue(a : Number, b : Number, c : Number) : Number
		{
			return (a * a + b * b - c * c) / (2 * a * b);
		}
		
		/**
		 * 余弦定理, 获得a, b边夹角的弧度
		 * @param	a 边a
		 * @param	b 边b
		 * @param	c 边c
		 * @return 获得a, b边夹角的弧度
		 */
		public static function cosineslaw_radianValue(a : Number, b : Number, c : Number) : Number
		{
			return Math.acos(cosineslaw_cosValue(a, b, c));
		}
		
		/**
		 * 余弦定理, 获得a, b边夹角的角度
		 * @param	a 边a
		 * @param	b 边b
		 * @param	c 边c
		 * @return 获得a和b夹角的角度
		 */
		public static function cosineslaw_angleValue(a : Number, b : Number, c : Number) : Number
		{
			return transRadian(cosineslaw_radianValue(a, b, c));
		}
		
		/**
		 * 将角度转化弧度
		 * @param	angle 角度
		 * @return 返回 角度 对应的 弧度值
		 */
		public static function transAngle(angle : Number) : Number
		{
			return angle * Math.PI / 180;
		}
		
		/**
		 * 将弧度转化为角度
		 * @param	radian 弧度
		 * @return 返回 弧度 对应的 角度值
		 */
		public static function transRadian(radian : Number) : Number
		{
			return radian * 180 / Math.PI;
		}
	}

}

































///////////////////////////////////////////////////////////////////////////////////////////////////
// end file


